---
layout: single
property_name: transition-timing-function
---

<section id="transition-timing-function" class="property">
  <header class="property-header">
    <nav class="property-links">
        <a class="property-collection" href="{{site.url}}/transitions/">
          In collection: <strong>transitions</strong>
        </a>
      <a class="property-links-direct" href="{{site.url}}/property/transition-timing-function/" data-property-name="transition-timing-function" data-tooltip="Single page for this property">Permalink</a>
      <a class="property-share" data-tooltip="Share on Twitter or Facebook" data-property-name="transition-timing-function">Share</a>
        <a target="_blank" href="http://caniuse.com/#feat=css-transitions" data-tooltip="See on Can I use..." rel="external">Can I use</a>
      <a target="_blank" href="https://developer.mozilla.org/en/docs/Web/CSS/transition-timing-function" data-tooltip="See on Mozilla Developer Network" rel="external">MDN</a>
    </nav>
    <h2 class="property-name">
      <a href="#transition-timing-function"><span>#</span>transition-timing-function</a>
    </h2>
    <div class="property-description">
      <p>Defines how the values between the <em>start</em> and the <em>end</em> of the transition are calculated.</p>

    </div>

  </header>

    <style type="text/css">.transition-timing-function { padding: 0; }</style>

    <style type="text/css">.transition-timing-function:hover .square { background: hsl(348, 100%, 61%);color: #fff;transform: translateX(200%); }</style>

    <style type="text/css">.transition-timing-function .square { transition-duration: 1s;transition-property: all; }</style>


    <section class="example">
      <header class="example-header">
        <p class="example-name">
            <code class="example-default" data-tooltip="This is the property's default value">default</code>


          <code class="example-value" data-tooltip="Click to copy" data-clipboard-text="transition-timing-function: ease;">transition-timing-function: ease;</code>
        </p>
        <div class="example-description">
          <p>The transition starts slowly, accelerates in the middle, and slows down at the end.</p>

        </div>
      </header>

      <aside class="example-preview">
        <div class="example-browser"><i></i><i></i><i></i></div>
        <div class="example-output">
          <div class="example-output-div transition-timing-function " id="transition-timing-function-ease"><p class="square square--alpha">Hover me</p></div>
        </div>
      </aside>
        <style type="text/css">#transition-timing-function-ease .square { transition-timing-function: ease; }</style>
    </section>
    <section class="example">
      <header class="example-header">
        <p class="example-name">


          <code class="example-value" data-tooltip="Click to copy" data-clipboard-text="transition-timing-function: ease-in;">transition-timing-function: ease-in;</code>
        </p>
        <div class="example-description">
          <p>The transition starts slowly, and accelerates gradually until the end.</p>

        </div>
      </header>

      <aside class="example-preview">
        <div class="example-browser"><i></i><i></i><i></i></div>
        <div class="example-output">
          <div class="example-output-div transition-timing-function " id="transition-timing-function-ease-in"><p class="square square--alpha">Hover me</p></div>
        </div>
      </aside>
        <style type="text/css">#transition-timing-function-ease-in .square { transition-timing-function: ease-in; }</style>
    </section>
    <section class="example">
      <header class="example-header">
        <p class="example-name">


          <code class="example-value" data-tooltip="Click to copy" data-clipboard-text="transition-timing-function: ease-out;">transition-timing-function: ease-out;</code>
        </p>
        <div class="example-description">
          <p>The transition starts quickly, and decelerates gradually until the end.</p>

        </div>
      </header>

      <aside class="example-preview">
        <div class="example-browser"><i></i><i></i><i></i></div>
        <div class="example-output">
          <div class="example-output-div transition-timing-function " id="transition-timing-function-ease-out"><p class="square square--alpha">Hover me</p></div>
        </div>
      </aside>
        <style type="text/css">#transition-timing-function-ease-out .square { transition-timing-function: ease-out; }</style>
    </section>
    <section class="example">
      <header class="example-header">
        <p class="example-name">


          <code class="example-value" data-tooltip="Click to copy" data-clipboard-text="transition-timing-function: ease-in-out;">transition-timing-function: ease-in-out;</code>
        </p>
        <div class="example-description">
          <p>Like <code>ease</code>, but more pronounced.</p>
<p>The transition starts quickly, and decelerates gradually until the end.</p>

        </div>
      </header>

      <aside class="example-preview">
        <div class="example-browser"><i></i><i></i><i></i></div>
        <div class="example-output">
          <div class="example-output-div transition-timing-function " id="transition-timing-function-ease-in-out"><p class="square square--alpha">Hover me</p></div>
        </div>
      </aside>
        <style type="text/css">#transition-timing-function-ease-in-out .square { transition-timing-function: ease-in-out; }</style>
    </section>
    <section class="example">
      <header class="example-header">
        <p class="example-name">


          <code class="example-value" data-tooltip="Click to copy" data-clipboard-text="transition-timing-function: linear;">transition-timing-function: linear;</code>
        </p>
        <div class="example-description">
          <p>The transition has a <em>*constant speed</em>.</p>

        </div>
      </header>

      <aside class="example-preview">
        <div class="example-browser"><i></i><i></i><i></i></div>
        <div class="example-output">
          <div class="example-output-div transition-timing-function " id="transition-timing-function-linear"><p class="square square--alpha">Hover me</p></div>
        </div>
      </aside>
        <style type="text/css">#transition-timing-function-linear .square { transition-timing-function: linear; }</style>
    </section>
    <section class="example">
      <header class="example-header">
        <p class="example-name">


          <code class="example-value" data-tooltip="Click to copy" data-clipboard-text="transition-timing-function: step-start;">transition-timing-function: step-start;</code>
        </p>
        <div class="example-description">
          <p>The transition jumps <em>instantly</em> to the <strong>final state</strong>.</p>

        </div>
      </header>

      <aside class="example-preview">
        <div class="example-browser"><i></i><i></i><i></i></div>
        <div class="example-output">
          <div class="example-output-div transition-timing-function " id="transition-timing-function-step-start"><p class="square square--alpha">Hover me</p></div>
        </div>
      </aside>
        <style type="text/css">#transition-timing-function-step-start .square { transition-timing-function: step-start; }</style>
    </section>
    <section class="example">
      <header class="example-header">
        <p class="example-name">


          <code class="example-value" data-tooltip="Click to copy" data-clipboard-text="transition-timing-function: step-end;">transition-timing-function: step-end;</code>
        </p>
        <div class="example-description">
          <p>The transition stays at the <strong>initial state</strong> until the end, when it <em>instantly</em> jumps to the <strong>final state</strong>.</p>

        </div>
      </header>

      <aside class="example-preview">
        <div class="example-browser"><i></i><i></i><i></i></div>
        <div class="example-output">
          <div class="example-output-div transition-timing-function " id="transition-timing-function-step-end"><p class="square square--alpha">Hover me</p></div>
        </div>
      </aside>
        <style type="text/css">#transition-timing-function-step-end .square { transition-timing-function: step-end; }</style>
    </section>
    <section class="example">
      <header class="example-header">
        <p class="example-name">


          <code class="example-value" data-tooltip="Click to copy" data-clipboard-text="transition-timing-function: steps(4, end);">transition-timing-function: steps(4, end);</code>
        </p>
        <div class="example-description">
          <p>By using <code>steps()</code> with an <strong>integer</strong>, you can define a specific <em>number</em> of steps before reaching the end. The state of the element will <em>not</em> vary gradually, but rather <strong>jump</strong> from state to state in separate instants.</p>

        </div>
      </header>

      <aside class="example-preview">
        <div class="example-browser"><i></i><i></i><i></i></div>
        <div class="example-output">
          <div class="example-output-div transition-timing-function " id="transition-timing-function-steps4-end"><p class="square square--alpha">Hover me</p></div>
        </div>
      </aside>
        <style type="text/css">#transition-timing-function-steps4-end .square { transition-timing-function: steps(4, end); }</style>
    </section>

</section>
